//
//  AnoleH5CommonDef.h
//  AnoleSDK
//
//  Created by mac on 2022/7/14.
//

#ifndef AnoleH5CommonDef_h
#define AnoleH5CommonDef_h

#import <UIKit/UIKit.h>
#import <WebKit/WebKit.h>

@protocol AnoleTabbarControllerProtoCol <NSObject>

//跳转url
-(void) switchTab:(NSString *)url;

//在所有的web中执行js代码
-(void) syncJS:(NSString *)js;

@end

//变色龙h5容器需要满足相关协议
@protocol AnoleH5ContainerProtocol <NSObject>

-(WKWebView *)webView;

//打开一个http的url
-(void) pushRemotePage:(NSURL *)pageURL;

//打开一个相对路径,如果提供了baseURLPath，那么最后会打开baseURLPath+relativePathPath
//如果baseURLPath为nil，会使用当前web的baseURL+提供的相对路径
-(void) pushPageWithBaseURL:(NSString *)baseURLPath relativePathPath:(NSString *)relativePathPath;


-(void) popPage:(int)pageCount;

-(UIViewController <AnoleTabbarControllerProtoCol>*)anoleTabbarController;

/**
 开启progress
 */
- (void)showProgressWithMessage:(NSString *)message;

/**
 隐藏progress
 */
- (void)hiddenProgress;
@end

//JSAPI处理结束之后需要返回给H5的回调函数
typedef void (^JSApiComplictionCallBack)(NSDictionary *callBackData);

//JSApi回调函数,H5调用原生
//container H5容器ViewController
//callBackData H5传递给JSApi的参数
//compliton JSApi处理完之后需要调用compliton将数据回传给H5
typedef void (^JSApiCallBack)(UIViewController<AnoleH5ContainerProtocol> *container,NSDictionary *callBackData,JSApiComplictionCallBack compliton);

#endif /* AnoleH5CommonDef_h */
